#include <iostream>
#include <set>

int sumaDeNumerosQueNoPuedenSerEscritosComoSumaDeDosNumerosAbundantes(int);
bool abundante(int);

using namespace std;
int main()
{
cout <<endl << endl<< sumaDeNumerosQueNoPuedenSerEscritosComoSumaDeDosNumerosAbundantes(28123) << endl << endl;	

return 0;
}
int sumaDeNumerosQueNoPuedenSerEscritosComoSumaDeDosNumerosAbundantes(int limite){
  set<int> conj;
  set<int> conj2;
  
  //lleno el conjunto de numeros abundantes
	for(int i = 0;i<limite;i++)
	{	
		if (abundante(i)){
			cout << i << endl;
			conj.insert(i);
			}
	}
	
	set<int>::iterator it1;
	set<int>::iterator it2;
	
	  for ( it1=conj.begin() ; it1 != conj.end(); it1++ ){
		cout << *it1 << endl;
		for ( it2=conj.begin() ; it2 != conj.end(); it2++ ){
		conj2.insert(*it1 + *it2);
			}  
	  }
	
	
	//una vez lleno, veo que numeros menores que el limite*2 cumplen que no se pueden formar como suma de 2...
	
	int res = 0;
	for(int k = 0;k<limite;k++)
	{ 
		
		if (conj2.count(k)==0) res = res + k;
		
	
	}
	

	
	return res;
}

bool abundante(int n){
	int cuenta = 0;
	for(int i = 1;i < n; i++){
		if (n % i == 0) cuenta = cuenta+i;
		if(cuenta > n) return true;
	}
	
	return false;
}